import request from '@/utils/request'

/**
 * 用户管理API
 */

/**
 * 获取用户列表
 * @param {Object} params - 查询参数
 * @param {number} params.page - 页码
 * @param {number} params.pageSize - 每页数量
 * @param {string} params.keyword - 搜索关键词
 * @param {string} params.role - 角色筛选
 * @param {string} params.status - 状态筛选
 * @returns {Promise} 用户列表响应数据
 */
export function getUserList(params) {
  return request({
    url: '/api/v1/users',
    method: 'get',
    params
  })
}

/**
 * 获取用户详情
 * @param {number} userId - 用户ID
 * @returns {Promise} 用户详情响应数据
 */
export function getUserDetail(userId) {
  return request({
    url: `/api/v1/users/${userId}`,
    method: 'get'
  })
}

/**
 * 创建用户
 * @param {Object} data - 用户数据
 * @returns {Promise} 创建用户响应数据
 */
export function createUser(data) {
  return request({
    url: '/api/v1/users',
    method: 'post',
    data
  })
}

/**
 * 更新用户
 * @param {number} userId - 用户ID
 * @param {Object} data - 更新数据
 * @returns {Promise} 更新用户响应数据
 */
export function updateUser(userId, data) {
  return request({
    url: `/api/v1/users/${userId}`,
    method: 'put',
    data
  })
}

/**
 * 删除用户
 * @param {number} userId - 用户ID
 * @returns {Promise} 删除用户响应数据
 */
export function deleteUser(userId) {
  return request({
    url: `/api/v1/users/${userId}`,
    method: 'delete'
  })
}

/**
 * 批量删除用户
 * @param {Object} data - 批量删除数据
 * @param {Array<number>} data.userIds - 用户ID数组
 * @returns {Promise} 批量删除响应数据
 */
export function batchDeleteUsers(data) {
  return request({
    url: '/api/v1/users/batch',
    method: 'delete',
    data
  })
}

/**
 * 更新用户状态
 * @param {number} userId - 用户ID
 * @param {Object} data - 状态数据
 * @param {string} data.status - 新状态
 * @returns {Promise} 更新状态响应数据
 */
export function updateUserStatus(userId, data) {
  return request({
    url: `/api/v1/users/${userId}/status`,
    method: 'patch',
    data
  })
}

/**
 * 重置用户密码
 * @param {number} userId - 用户ID
 * @returns {Promise} 重置密码响应数据
 */
export function resetUserPassword(userId) {
  return request({
    url: `/api/v1/users/${userId}/reset-password`,
    method: 'post'
  })
}

/**
 * 获取用户统计信息
 * @returns {Promise} 用户统计响应数据
 */
export function getUserStats() {
  return request({
    url: '/api/v1/users/stats',
    method: 'get'
  })
} 